home *** CD-ROM | disk | FTP | other *** search
/ Macwelt 4 / Macwelt DVD 4.cdr / Entwickler / Mac-OS / oxygen / oxygen.app / Contents / Resources / Java / oxygen.jar / builtin / XMLSchema.xsd < prev    next >
Encoding:
Extensible Markup Language  |  2002-09-09  |  71.1 KB  |  1,981 lines

  1. <?xml version='1.0' encoding='UTF-8'?>
  2. <!-- XML Schema schema for XML Schemas: Part 1: Structures -->
  3. <!DOCTYPE xs:schema
  4. [
  5. <!-- Inclusion of XMLSchema.dtd starts here. tkamiya 2001-08-14 -->
  6.  
  7. <!-- With the exception of cases with multiple namespace
  8.      prefixes for the XML Schema namespace, any XML document which is
  9.      not valid per this DTD given redefinitions in its internal subset of the
  10.      'p' and 's' parameter entities below appropriate to its namespace
  11.      declaration of the XML Schema namespace is almost certainly not
  12.      a valid schema. -->
  13.  
  14. <!-- The simpleType element and its constituent parts
  15.      are defined in XML Schema: Part 2: Datatypes -->
  16.  
  17. <!-- Inclusion of datatypes.dtd starts here. tkamiya 2001-08-14 -->
  18.  
  19. <!-- !ENTITY % xs-datatypes PUBLIC 'datatypes' 'datatypes.dtd' -->
  20. <!-- %xs-datatypes; -->
  21.  
  22. <!--
  23.         DTD for XML Schemas: Part 2: Datatypes
  24.         $Id: XMLSchema.xsd,v 1.1 2002/04/10 12:21:58 george Exp $
  25.         Note this DTD is NOT normative, or even definitive. - - the
  26.         prose copy in the datatypes REC is the definitive version
  27.         (which shouldn't differ from this one except for this comment
  28.         and entity expansions, but just in case)
  29.   -->
  30.  
  31. <!ELEMENT xs:simpleType
  32.         ((xs:annotation)?, (xs:restriction | xs:list | xs:union))>
  33. <!ATTLIST xs:simpleType
  34.     name      NMTOKEN #IMPLIED
  35.     final     CDATA #IMPLIED
  36.     id        ID       #IMPLIED
  37.     >
  38. <!-- name is required at top level -->
  39. <!ELEMENT xs:restriction ((xs:annotation)?,
  40.                          (((xs:all | xs:choice | xs:sequence | xs:group)?) |
  41.                           ((xs:simpleType)?,((xs:minInclusive | xs:minExclusive) | (xs:maxInclusive | xs:maxExclusive) | xs:totalDigits | xs:fractionDigits | xs:pattern | xs:enumeration | xs:whiteSpace | xs:length | xs:maxLength | xs:minLength)*)),
  42.                          (((xs:attribute| xs:attributeGroup)*,(xs:anyAttribute)?)))>
  43. <!ATTLIST xs:restriction
  44.     base      NMTOKEN                  #IMPLIED
  45.     id        ID       #IMPLIED
  46.     >
  47. <!--
  48.         base and simpleType child are mutually exclusive,
  49.         one is required.
  50.  
  51.         restriction is shared between simpleType and
  52.         simpleContent and complexContent (in XMLSchema.xsd).
  53.         restriction1 is for the latter cases, when this
  54.         is restricting a complex type, as is attrDecls.
  55.   -->
  56. <!ELEMENT xs:list ((xs:annotation)?,(xs:simpleType)?)>
  57. <!ATTLIST xs:list
  58.     itemType      NMTOKEN             #IMPLIED
  59.     id        ID       #IMPLIED
  60.     >
  61. <!--
  62.         itemType and simpleType child are mutually exclusive,
  63.         one is required
  64.   -->
  65. <!ELEMENT xs:union ((xs:annotation)?,(xs:simpleType)*)>
  66. <!ATTLIST xs:union
  67.     id            ID       #IMPLIED
  68.     memberTypes   NMTOKENS            #IMPLIED
  69.     >
  70. <!--
  71.         At least one item in memberTypes or one simpleType
  72.         child is required
  73.   -->
  74.  
  75. <!ELEMENT xs:maxExclusive (xs:annotation)?>
  76. <!ATTLIST xs:maxExclusive
  77.         value CDATA #REQUIRED id ID #IMPLIED
  78.         fixed (true|false) #IMPLIED
  79.         >
  80. <!ELEMENT xs:minExclusive (xs:annotation)?>
  81. <!ATTLIST xs:minExclusive
  82.         value CDATA #REQUIRED id ID #IMPLIED
  83.         fixed (true|false) #IMPLIED
  84.         >
  85.  
  86. <!ELEMENT xs:maxInclusive (xs:annotation)?>
  87. <!ATTLIST xs:maxInclusive
  88.         value CDATA #REQUIRED id ID #IMPLIED
  89.         fixed (true|false) #IMPLIED
  90.         >
  91. <!ELEMENT xs:minInclusive (xs:annotation)?>
  92. <!ATTLIST xs:minInclusive
  93.         value CDATA #REQUIRED id ID #IMPLIED
  94.         fixed (true|false) #IMPLIED
  95.         >
  96.  
  97. <!ELEMENT xs:totalDigits (xs:annotation)?>
  98. <!ATTLIST xs:totalDigits
  99.         value CDATA #REQUIRED id ID #IMPLIED
  100.         fixed (true|false) #IMPLIED
  101.         >
  102. <!ELEMENT xs:fractionDigits (xs:annotation)?>
  103. <!ATTLIST xs:fractionDigits
  104.         value CDATA #REQUIRED id ID #IMPLIED
  105.         fixed (true|false) #IMPLIED
  106.         >
  107.  
  108. <!ELEMENT xs:length (xs:annotation)?>
  109. <!ATTLIST xs:length
  110.         value CDATA #REQUIRED id ID #IMPLIED
  111.         fixed (true|false) #IMPLIED
  112.         >
  113. <!ELEMENT xs:minLength (xs:annotation)?>
  114. <!ATTLIST xs:minLength
  115.         value CDATA #REQUIRED id ID #IMPLIED
  116.         fixed (true|false) #IMPLIED
  117.         >
  118. <!ELEMENT xs:maxLength (xs:annotation)?>
  119. <!ATTLIST xs:maxLength
  120.         value CDATA #REQUIRED id ID #IMPLIED
  121.         fixed (true|false) #IMPLIED
  122.         >
  123.  
  124. <!-- This one can be repeated -->
  125. <!ELEMENT xs:enumeration (xs:annotation)?>
  126. <!ATTLIST xs:enumeration
  127.         value CDATA #REQUIRED id ID #IMPLIED
  128.         >
  129.  
  130. <!ELEMENT xs:whiteSpace (xs:annotation)?>
  131. <!ATTLIST xs:whiteSpace
  132.         value CDATA #REQUIRED id ID #IMPLIED
  133.         fixed (true|false) #IMPLIED
  134.         >
  135.  
  136. <!-- This one can be repeated -->
  137. <!ELEMENT xs:pattern (xs:annotation)?>
  138. <!ATTLIST xs:pattern
  139.         value CDATA #REQUIRED id ID #IMPLIED
  140.         >
  141.  
  142. <!-- Inclusion of datatypes.dtd ends here. tkamiya 2001-08-14 -->
  143.  
  144. <!-- the duplication below is to produce an unambiguous content model
  145.      which allows annotation everywhere -->
  146. <!ELEMENT xs:schema ((xs:include | xs:import | xs:redefine | xs:annotation)*,
  147.                     ((xs:simpleType | xs:complexType
  148.                       | xs:element | xs:attribute
  149.                       | xs:attributeGroup | xs:group
  150.                       | xs:notation ),
  151.                      (xs:annotation)*)* )>
  152. <!ATTLIST xs:schema
  153.    targetNamespace      CDATA               #IMPLIED
  154.    version              CDATA                  #IMPLIED
  155.    xmlns:xs                CDATA               #FIXED 'http://www.w3.org/2001/XMLSchema'
  156.    xmlns:co             CDATA                  #FIXED 'http://www.iona.com/2001/XMLSchemaCompanion'
  157.    xmlns                CDATA                  #IMPLIED
  158.    finalDefault         CDATA ''
  159.    blockDefault         CDATA             ''
  160.    id                   ID                     #IMPLIED
  161.    elementFormDefault   (qualified|unqualified)           'unqualified'
  162.    attributeFormDefault (qualified|unqualified)           'unqualified'
  163.    xml:lang             CDATA                  #IMPLIED
  164.    >
  165. <!-- Note the xmlns declaration is NOT in the Schema for Schemas,
  166.      because at the Infoset level where schemas operate,
  167.      xmlns(:prefix) is NOT an attribute! -->
  168. <!-- The declaration of xmlns is a convenience for schema authors -->
  169.  
  170. <!-- The id attribute here and below is for use in external references
  171.      from non-schemas using simple fragment identifiers.
  172.      It is NOT used for schema-to-schema reference, internal or
  173.      external. -->
  174.  
  175. <!-- a type is a named content type specification which allows attribute
  176.      declarations-->
  177. <!-- -->
  178.  
  179. <!ELEMENT xs:complexType ((xs:annotation)?,
  180.                          (xs:simpleContent|xs:complexContent|
  181.                           ((xs:all | xs:choice | xs:sequence | xs:group)?, ((xs:attribute| xs:attributeGroup)*,(xs:anyAttribute)?))))>
  182.  
  183. <!ATTLIST xs:complexType
  184.           name      NMTOKEN                        #IMPLIED
  185.           id        ID                              #IMPLIED
  186.           abstract  (true|false)                       #IMPLIED
  187.           final     CDATA          #IMPLIED
  188.           block     CDATA          #IMPLIED
  189.           mixed (true|false) 'false'
  190.           >
  191.  
  192. <!-- particleAndAttrs is shorthand for a root type -->
  193. <!-- mixed is disallowed if simpleContent, overriden if complexContent
  194.      has one too. -->
  195.  
  196. <!-- If anyAttribute appears in one or more referenced attributeGroups
  197.      and/or explicitly, the intersection of the permissions is used -->
  198.  
  199. <!ELEMENT xs:complexContent (xs:restriction|xs:extension)>
  200. <!ATTLIST xs:complexContent
  201.           mixed (true|false) #IMPLIED
  202.           id    ID           #IMPLIED
  203.           >
  204.  
  205. <!-- restriction should use the branch defined above, not the simple
  206.      one from part2; extension should use the full model  -->
  207.  
  208. <!ELEMENT xs:simpleContent (xs:restriction|xs:extension)>
  209. <!ATTLIST xs:simpleContent
  210.           id    ID           #IMPLIED
  211.           >
  212.  
  213. <!-- restriction should use the simple branch from part2, not the 
  214.      one defined above; extension should have no particle  -->
  215.  
  216. <!ELEMENT xs:extension (((xs:all | xs:choice | xs:sequence | xs:group)?, ((xs:attribute| xs:attributeGroup)*,(xs:anyAttribute)?)))>
  217. <!ATTLIST xs:extension
  218.           base  NMTOKEN      #REQUIRED
  219.           id    ID           #IMPLIED
  220.           >
  221.  
  222. <!-- an element is declared by either:
  223.  a name and a type (either nested or referenced via the type attribute)
  224.  or a ref to an existing element declaration -->
  225.  
  226. <!ELEMENT xs:element ((xs:annotation)?, (xs:complexType| xs:simpleType)?,
  227.                      (xs:unique | xs:key | xs:keyref)*)>
  228. <!-- simpleType or complexType only if no type|ref attribute -->
  229. <!-- ref not allowed at top level -->
  230. <!ATTLIST xs:element
  231.             name               NMTOKEN               #IMPLIED
  232.             id                 ID                     #IMPLIED
  233.             ref                NMTOKEN                #IMPLIED
  234.             type               NMTOKEN                #IMPLIED
  235.             minOccurs          NMTOKEN   #IMPLIED
  236.             maxOccurs          CDATA                  #IMPLIED
  237.             nillable           (true|false)              #IMPLIED
  238.             substitutionGroup  NMTOKEN                #IMPLIED
  239.             abstract           (true|false)              #IMPLIED
  240.             final              CDATA #IMPLIED
  241.             block              CDATA             #IMPLIED
  242.             default            CDATA                  #IMPLIED
  243.             fixed              CDATA                  #IMPLIED
  244.             form               (qualified|unqualified)           #IMPLIED
  245.             >
  246. <!-- type and ref are mutually exclusive.
  247.      name and ref are mutually exclusive, one is required -->
  248. <!-- In the absence of type AND ref, type defaults to type of
  249.      substitutionGroup, if any, else the ur-type, i.e. unconstrained -->
  250. <!-- default and fixed are mutually exclusive -->
  251.  
  252. <!ELEMENT xs:group ((xs:annotation)?,(xs:all | xs:choice | xs:sequence)?)>
  253. <!ATTLIST xs:group 
  254.           name        NMTOKEN               #IMPLIED
  255.           ref         NMTOKEN                #IMPLIED
  256.           minOccurs   NMTOKEN   #IMPLIED
  257.           maxOccurs   CDATA                  #IMPLIED
  258.           id          ID                     #IMPLIED
  259.           >
  260.  
  261. <!ELEMENT xs:all ((xs:annotation)?, (xs:element)*)>
  262. <!ATTLIST xs:all
  263.           minOccurs   (1)                    #IMPLIED
  264.           maxOccurs   (1)                    #IMPLIED
  265.           id          ID                     #IMPLIED
  266.           >
  267.  
  268. <!ELEMENT xs:choice ((xs:annotation)?, (xs:element| xs:group| xs:choice | xs:sequence | xs:any)*)>
  269. <!ATTLIST xs:choice
  270.           minOccurs   NMTOKEN   #IMPLIED
  271.           maxOccurs   CDATA                  #IMPLIED
  272.           id          ID                     #IMPLIED
  273.           >
  274.  
  275. <!ELEMENT xs:sequence ((xs:annotation)?, (xs:element| xs:group| xs:choice | xs:sequence | xs:any)*)>
  276. <!ATTLIST xs:sequence
  277.           minOccurs   NMTOKEN   #IMPLIED
  278.           maxOccurs   CDATA                  #IMPLIED
  279.           id          ID                     #IMPLIED
  280.           >
  281.  
  282. <!-- an anonymous grouping in a model, or
  283.      a top-level named group definition, or a reference to same -->
  284.  
  285. <!-- Note that if order is 'all', group is not allowed inside.
  286.      If order is 'all' THIS group must be alone (or referenced alone) at
  287.      the top level of a content model -->
  288. <!-- If order is 'all', minOccurs==maxOccurs==1 on element/any inside -->
  289. <!-- Should allow minOccurs=0 inside order='all' . . . -->
  290.  
  291. <!ELEMENT xs:any (xs:annotation)?>
  292. <!ATTLIST xs:any
  293.             namespace       CDATA                  '##any'
  294.             processContents (skip|lax|strict)      'strict'
  295.             minOccurs       NMTOKEN   '1'
  296.             maxOccurs       CDATA                  '1'
  297.             id              ID                     #IMPLIED
  298.             >
  299.  
  300. <!-- namespace is interpreted as follows:
  301.                   ##any      - - any non-conflicting WFXML at all
  302.  
  303.                   ##other    - - any non-conflicting WFXML from namespace other
  304.                                   than targetNamespace
  305.  
  306.                   ##local    - - any unqualified non-conflicting WFXML/attribute
  307.                   one or     - - any non-conflicting WFXML from
  308.                   more URI        the listed namespaces
  309.                   references
  310.  
  311.                   ##targetNamespace ##local may appear in the above list,
  312.                     with the obvious meaning -->
  313.  
  314. <!ELEMENT xs:anyAttribute (xs:annotation)?>
  315. <!ATTLIST xs:anyAttribute
  316.             namespace       CDATA              '##any'
  317.             processContents (skip|lax|strict)  'strict'
  318.             id              ID                 #IMPLIED
  319.             >
  320. <!-- namespace is interpreted as for 'any' above -->
  321.  
  322. <!-- simpleType only if no type|ref attribute -->
  323. <!-- ref not allowed at top level, name iff at top level -->
  324. <!ELEMENT xs:attribute ((xs:annotation)?, (xs:simpleType)?)>
  325. <!ATTLIST xs:attribute
  326.           name      NMTOKEN      #IMPLIED
  327.           id        ID            #IMPLIED
  328.           ref       NMTOKEN       #IMPLIED
  329.           type      NMTOKEN       #IMPLIED
  330.           use       (prohibited|optional|required) #IMPLIED
  331.           default   CDATA         #IMPLIED
  332.           fixed     CDATA         #IMPLIED
  333.           form      (qualified|unqualified)  #IMPLIED
  334.           >
  335. <!-- type and ref are mutually exclusive.
  336.      name and ref are mutually exclusive, one is required -->
  337. <!-- default for use is optional when nested, none otherwise -->
  338. <!-- default and fixed are mutually exclusive -->
  339. <!-- type attr and simpleType content are mutually exclusive -->
  340.  
  341. <!-- an attributeGroup is a named collection of attribute decls, or a
  342.      reference thereto -->
  343. <!ELEMENT xs:attributeGroup ((xs:annotation)?,
  344.                        (xs:attribute | xs:attributeGroup)*,
  345.                        (xs:anyAttribute)?) >
  346. <!ATTLIST xs:attributeGroup
  347.                  name       NMTOKEN       #IMPLIED
  348.                  id         ID             #IMPLIED
  349.                  ref        NMTOKEN        #IMPLIED
  350.                  >
  351.  
  352. <!-- ref iff no content, no name.  ref iff not top level -->
  353.  
  354. <!-- better reference mechanisms -->
  355. <!ELEMENT xs:unique ((xs:annotation)?, xs:selector, (xs:field)+)>
  356. <!ATTLIST xs:unique
  357.           name     NMTOKEN       #REQUIRED
  358.       id       ID             #IMPLIED
  359.       >
  360.  
  361. <!ELEMENT xs:key    ((xs:annotation)?, xs:selector, (xs:field)+)>
  362. <!ATTLIST xs:key
  363.           name     NMTOKEN       #REQUIRED
  364.       id       ID             #IMPLIED
  365.       >
  366.  
  367. <!ELEMENT xs:keyref ((xs:annotation)?, xs:selector, (xs:field)+)>
  368. <!ATTLIST xs:keyref
  369.           name     NMTOKEN       #REQUIRED
  370.       refer    NMTOKEN        #REQUIRED
  371.       id       ID             #IMPLIED
  372.       >
  373.  
  374. <!ELEMENT xs:selector ((xs:annotation)?)>
  375. <!ATTLIST xs:selector
  376.           xpath CDATA #REQUIRED
  377.           id    ID          #IMPLIED
  378.           >
  379. <!ELEMENT xs:field ((xs:annotation)?)>
  380. <!ATTLIST xs:field
  381.           xpath CDATA #REQUIRED
  382.           id    ID          #IMPLIED
  383.           >
  384.  
  385. <!-- Schema combination mechanisms -->
  386. <!ELEMENT xs:include (xs:annotation)?>
  387. <!ATTLIST xs:include
  388.           schemaLocation CDATA #REQUIRED
  389.           id             ID       #IMPLIED
  390.           >
  391.  
  392. <!ELEMENT xs:import (xs:annotation)?>
  393. <!ATTLIST xs:import
  394.           namespace      CDATA #IMPLIED
  395.           schemaLocation CDATA #IMPLIED
  396.           id             ID       #IMPLIED
  397.           >
  398.  
  399. <!ELEMENT xs:redefine (xs:annotation | xs:simpleType | xs:complexType |
  400.                       xs:attributeGroup | xs:group)*>
  401. <!ATTLIST xs:redefine
  402.           schemaLocation CDATA #REQUIRED
  403.           id             ID       #IMPLIED
  404.           >
  405.  
  406. <!ELEMENT xs:notation (xs:annotation)?>
  407. <!ATTLIST xs:notation
  408.       name        NMTOKEN    #REQUIRED
  409.       id          ID          #IMPLIED
  410.       public      CDATA       #REQUIRED
  411.       system      CDATA    #IMPLIED
  412.       >
  413.  
  414. <!-- Annotation is either application information or documentation -->
  415. <!-- By having these here they are available for datatypes as well
  416.      as all the structures elements -->
  417.  
  418. <!ELEMENT xs:annotation (xs:appinfo | xs:documentation)*>
  419.  
  420. <!-- User must define annotation elements in internal subset for this
  421.      to work -->
  422. <!ELEMENT xs:appinfo ANY>   <!-- too restrictive -->
  423. <!ATTLIST xs:appinfo
  424.           source     CDATA      #IMPLIED
  425.           id         ID         #IMPLIED
  426.           >
  427. <!ELEMENT xs:documentation ANY>   <!-- too restrictive -->
  428. <!ATTLIST xs:documentation
  429.           source     CDATA   #IMPLIED
  430.           id         ID         #IMPLIED
  431.           xml:lang   CDATA      #IMPLIED
  432.           >
  433.  
  434. <!NOTATION XMLSchemaStructures PUBLIC
  435.            'structures' 'http://www.w3.org/2001/XMLSchema.xsd' >
  436. <!NOTATION XML PUBLIC
  437.            'REC-xml-1998-0210' 'http://www.w3.org/TR/1998/REC-xml-19980210' >
  438.  
  439. <!-- Inclusion of XMLSchema.dtd ends here. tkamiya 2001-08-14 -->
  440.  
  441. <!-- 
  442.   Imported from datatypes.xsd. tkamiya 2001-08-14.
  443.   
  444.   Make sure that processors that do not read the external
  445.   subset will know about the various IDs we declare
  446. -->
  447. <!ATTLIST xs:simpleType id ID #IMPLIED>
  448. <!ATTLIST xs:maxExclusive id ID #IMPLIED>
  449. <!ATTLIST xs:minExclusive id ID #IMPLIED>
  450. <!ATTLIST xs:maxInclusive id ID #IMPLIED>
  451. <!ATTLIST xs:minInclusive id ID #IMPLIED>
  452. <!ATTLIST xs:totalDigits id ID #IMPLIED>
  453. <!ATTLIST xs:fractionDigits id ID #IMPLIED>
  454. <!ATTLIST xs:length id ID #IMPLIED>
  455. <!ATTLIST xs:minLength id ID #IMPLIED>
  456. <!ATTLIST xs:maxLength id ID #IMPLIED>
  457. <!ATTLIST xs:enumeration id ID #IMPLIED>
  458. <!ATTLIST xs:pattern id ID #IMPLIED>
  459. <!ATTLIST xs:appinfo id ID #IMPLIED>
  460. <!ATTLIST xs:documentation id ID #IMPLIED>
  461. <!ATTLIST xs:list id ID #IMPLIED>
  462. <!ATTLIST xs:union id ID #IMPLIED>
  463.  
  464. <!-- provide ID type information even for parsers which only read the
  465.      internal subset -->
  466. <!ATTLIST xs:schema          id  ID  #IMPLIED>
  467. <!ATTLIST xs:complexType     id  ID  #IMPLIED>
  468. <!ATTLIST xs:complexContent  id  ID  #IMPLIED>
  469. <!ATTLIST xs:simpleContent   id  ID  #IMPLIED>
  470. <!ATTLIST xs:extension       id  ID  #IMPLIED>
  471. <!ATTLIST xs:element         id  ID  #IMPLIED>
  472. <!ATTLIST xs:group           id  ID  #IMPLIED> 
  473. <!ATTLIST xs:all             id  ID  #IMPLIED>
  474. <!ATTLIST xs:choice          id  ID  #IMPLIED>
  475. <!ATTLIST xs:sequence        id  ID  #IMPLIED>
  476. <!ATTLIST xs:any             id  ID  #IMPLIED>
  477. <!ATTLIST xs:anyAttribute    id  ID  #IMPLIED>
  478. <!ATTLIST xs:attribute       id  ID  #IMPLIED>
  479. <!ATTLIST xs:attributeGroup  id  ID  #IMPLIED>
  480. <!ATTLIST xs:unique          id  ID  #IMPLIED>
  481. <!ATTLIST xs:key             id  ID  #IMPLIED>
  482. <!ATTLIST xs:keyref          id  ID  #IMPLIED>
  483. <!ATTLIST xs:selector        id  ID  #IMPLIED>
  484. <!ATTLIST xs:field           id  ID  #IMPLIED>
  485. <!ATTLIST xs:include         id  ID  #IMPLIED>
  486. <!ATTLIST xs:import          id  ID  #IMPLIED>
  487. <!ATTLIST xs:redefine        id  ID  #IMPLIED>
  488. <!ATTLIST xs:notation        id  ID  #IMPLIED>
  489. ]>
  490. <!--
  491.   Declare "xml" prefix explicitly here for now since xerces is not aware of it in handling schemas.
  492.   2001-08-08 - tkamiya
  493. -->
  494. <xs:schema targetNamespace="http://www.w3.org/2001/XMLSchema"
  495.            blockDefault="#all" elementFormDefault="qualified" xml:lang="EN"
  496.            version="Id: XMLSchema.xsd,v 1.48 2001/04/24 18:56:39 ht Exp "
  497.            xmlns:xs="http://www.w3.org/2001/XMLSchema"
  498.            xmlns:xml="http://www.w3.org/XML/1998/namespace"
  499.            xmlns:co="http://www.iona.com/2001/XMLSchemaCompanion">
  500.  <xs:annotation>
  501.    <xs:documentation source="http://www.w3.org/TR/2001/REC-xmlschema-1-20010502/structures.html">
  502.    The schema corresponding to this document is normative,
  503.    with respect to the syntactic constraints it expresses in the
  504.    XML Schema language.  The documentation (within <documentation> elements)
  505.    below, is not normative, but rather highlights important aspects of
  506.    the W3C Recommendation of which this is a part</xs:documentation>
  507.  </xs:annotation>
  508.  
  509.  <xs:annotation>
  510.    <xs:documentation>
  511.    The simpleType element and all of its members are defined
  512.    in datatypes.xsd</xs:documentation>
  513.  </xs:annotation>
  514.  
  515.  <xs:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="XML1998.xsd">
  516.    <xs:annotation>
  517.      <xs:documentation>
  518.        Get access to the xml: attribute groups for xml:lang
  519.        as declared on 'schema' and 'documentation' below
  520.      </xs:documentation>
  521.      <xs:documentation>
  522.        Do not try to retrieve "xml.xsd" from W3C at "http://www.w3.org/2001/xml.xsd".
  523.        Just read the one on local disk. (2001-08-08 - tkamiya)
  524.      </xs:documentation>
  525.    </xs:annotation>
  526.  </xs:import>
  527.  
  528.  <!-- Inclusion of datatypes.xsd starts here. tkamiya 2001-08-14 -->
  529.  <!-- xs:include schemaLocation="datatypes.xsd" / -->
  530.  
  531.  <xs:annotation>
  532.    <xs:documentation>
  533.      For each built-in datatype in this schema (both primitive and
  534.      derived) can be uniquely addressed via a URI constructed
  535.      as follows:
  536.        1) the base URI is the URI of the XML Schema namespace
  537.        2) the fragment identifier is the name of the datatype
  538.         
  539.      For example, to address the int datatype, the URI is:
  540.       
  541.        http://www.w3.org/2001/XMLSchema#int
  542.       
  543.      Additionally, each facet definition element can be uniquely
  544.      addressed via a URI constructed as follows:
  545.        1) the base URI is the URI of the XML Schema namespace
  546.        2) the fragment identifier is the name of the facet
  547.         
  548.      For example, to address the maxInclusive facet, the URI is:
  549.       
  550.        http://www.w3.org/2001/XMLSchema#maxInclusive
  551.  
  552.      Additionally, each facet usage in a built-in datatype definition
  553.      can be uniquely addressed via a URI constructed as follows:
  554.        1) the base URI is the URI of the XML Schema namespace
  555.        2) the fragment identifier is the name of the datatype, followed
  556.           by a period (".") followed by the name of the facet
  557.         
  558.      For example, to address the usage of the maxInclusive facet in
  559.      the definition of int, the URI is:
  560.       
  561.        http://www.w3.org/2001/XMLSchema#int.maxInclusive
  562.        
  563.     </xs:documentation>
  564.   </xs:annotation>
  565.  
  566.   <!-- Simple-type declarations have been removed. They do not parse. - tkamiya 2001-08-06 -->
  567.  
  568.   <!--
  569.     Internal-use simple types have been segregated to work around xerces problem.
  570.     Be careful! It may be subject to circular-dependency checking someday. It may
  571.     not be because primitive types are intrinsic in nature. - tkamiya 2001-08-08
  572.   -->
  573.   <xs:import namespace="http://www.iona.com/2001/XMLSchemaCompanion" schemaLocation="XMLSchemaUtil.xsd" />
  574.  
  575.   <xs:group name="simpleDerivation">
  576.    <xs:choice>
  577.      <xs:element ref="xs:restriction"/>
  578.      <xs:element ref="xs:list"/>
  579.      <xs:element ref="xs:union"/>
  580.    </xs:choice>
  581.   </xs:group>
  582.  
  583.   <xs:complexType name="simpleType" abstract="true">
  584.     <xs:complexContent>
  585.       <xs:extension base="xs:annotated">
  586.         <xs:group ref="xs:simpleDerivation"/>
  587.         <xs:attribute name="final" type="co:simpleDerivationSet"/>
  588.         <xs:attribute name="name" type="xs:NCName">
  589.           <xs:annotation>
  590.             <xs:documentation>
  591.               Can be restricted to required or forbidden
  592.             </xs:documentation>
  593.           </xs:annotation>
  594.         </xs:attribute>
  595.       </xs:extension>
  596.     </xs:complexContent>
  597.   </xs:complexType>
  598.  
  599.   <xs:complexType name="topLevelSimpleType">
  600.     <xs:complexContent>
  601.       <xs:restriction base="xs:simpleType">
  602.         <xs:sequence>
  603.           <xs:element ref="xs:annotation" minOccurs="0"/>
  604.           <xs:group ref="xs:simpleDerivation"/>
  605.         </xs:sequence>
  606.         <xs:attribute name="name" use="required"
  607.              type="xs:NCName">
  608.           <xs:annotation>
  609.             <xs:documentation>
  610.               Required at the top level
  611.             </xs:documentation>
  612.           </xs:annotation>
  613.         </xs:attribute>   
  614.       </xs:restriction>
  615.     </xs:complexContent>
  616.   </xs:complexType>
  617.  
  618.   <xs:complexType name="localSimpleType">
  619.     <xs:complexContent>
  620.       <xs:restriction base="xs:simpleType">
  621.         <xs:sequence>
  622.           <xs:element ref="xs:annotation" minOccurs="0"/>
  623.           <xs:group ref="xs:simpleDerivation"/>
  624.         </xs:sequence>
  625.         <xs:attribute name="name" type="xs:NCName" use="prohibited">
  626.           <xs:annotation>
  627.             <xs:documentation>
  628.               Forbidden when nested
  629.             </xs:documentation>
  630.           </xs:annotation>
  631.         </xs:attribute>   
  632.         <xs:attribute name="final" type="co:simpleDerivationSet" use="prohibited"/>
  633.       </xs:restriction>
  634.     </xs:complexContent>
  635.   </xs:complexType>
  636.  
  637.   <xs:element name="simpleType" type="xs:topLevelSimpleType" id="simpleType">
  638.     <xs:annotation>
  639.       <xs:documentation
  640.         source="http://www.w3.org/TR/xmlschema-2/#element-simpleType"/>
  641.     </xs:annotation>
  642.   </xs:element>
  643.  
  644.   <xs:group name="facets">
  645.    <xs:annotation>
  646.     <xs:documentation>
  647.        We should use a substitution group for facets, but
  648.        that's ruled out because it would allow users to
  649.        add their own, which we're not ready for yet.
  650.     </xs:documentation>
  651.    </xs:annotation>
  652.    <xs:choice>
  653.     <xs:element ref="xs:minExclusive"/>
  654.     <xs:element ref="xs:minInclusive"/>
  655.     <xs:element ref="xs:maxExclusive"/>
  656.     <xs:element ref="xs:maxInclusive"/>
  657.     <xs:element ref="xs:totalDigits"/>
  658.     <xs:element ref="xs:fractionDigits"/>
  659.     <xs:element ref="xs:length"/>
  660.     <xs:element ref="xs:minLength"/>
  661.     <xs:element ref="xs:maxLength"/>
  662.     <xs:element ref="xs:enumeration"/>
  663.     <xs:element ref="xs:whiteSpace"/>
  664.     <xs:element ref="xs:pattern"/>
  665.    </xs:choice>
  666.   </xs:group>
  667.  
  668.   <xs:group name="simpleRestrictionModel">
  669.    <xs:sequence>
  670.     <xs:element name="simpleType" type="xs:localSimpleType" minOccurs="0"/>
  671.     <xs:group ref="xs:facets" minOccurs="0" maxOccurs="unbounded"/>
  672.    </xs:sequence>
  673.   </xs:group>
  674.  
  675.   <xs:element name="restriction" id="restriction">
  676.    <xs:complexType>
  677.     <xs:annotation>
  678.       <xs:documentation
  679.                 source="http://www.w3.org/TR/xmlschema-2/#element-restriction">
  680.           base attribute and simpleType child are mutually
  681.           exclusive, but one or other is required
  682.         </xs:documentation>
  683.       </xs:annotation>
  684.       <xs:complexContent>
  685.         <xs:extension base="xs:annotated">
  686.          <xs:group ref="xs:simpleRestrictionModel"/>
  687.          <xs:attribute name="base" type="xs:QName" use="optional"/>
  688.         </xs:extension>
  689.       </xs:complexContent>
  690.     </xs:complexType>
  691.   </xs:element>
  692.  
  693.   <xs:element name="list" id="list">
  694.    <xs:complexType>
  695.     <xs:annotation>
  696.       <xs:documentation
  697.                 source="http://www.w3.org/TR/xmlschema-2/#element-list">
  698.           itemType attribute and simpleType child are mutually
  699.           exclusive, but one or other is required
  700.         </xs:documentation>
  701.       </xs:annotation>
  702.       <xs:complexContent>
  703.         <xs:extension base="xs:annotated">
  704.           <xs:sequence>
  705.             <xs:element name="simpleType" type="xs:localSimpleType"
  706.                 minOccurs="0"/>
  707.           </xs:sequence>
  708.           <xs:attribute name="itemType" type="xs:QName" use="optional"/>
  709.         </xs:extension>
  710.       </xs:complexContent>
  711.     </xs:complexType>
  712.   </xs:element>
  713.  
  714.   <xs:element name="union" id="union">
  715.    <xs:complexType>
  716.     <xs:annotation>
  717.       <xs:documentation
  718.                 source="http://www.w3.org/TR/xmlschema-2/#element-union">
  719.           memberTypes attribute must be non-empty or there must be
  720.           at least one simpleType child
  721.         </xs:documentation>
  722.       </xs:annotation>
  723.       <xs:complexContent>
  724.         <xs:extension base="xs:annotated">
  725.           <xs:sequence>
  726.             <xs:element name="simpleType" type="xs:localSimpleType"
  727.                 minOccurs="0" maxOccurs="unbounded"/>
  728.           </xs:sequence>
  729.           <xs:attribute name="memberTypes" use="optional">
  730.             <xs:simpleType>
  731.               <xs:list itemType="xs:QName"/>
  732.             </xs:simpleType>
  733.           </xs:attribute>
  734.         </xs:extension>
  735.       </xs:complexContent>
  736.     </xs:complexType>
  737.   </xs:element>
  738.   
  739.   <xs:complexType name="facet">
  740.     <xs:complexContent>
  741.       <xs:extension base="xs:annotated">
  742.         <xs:attribute name="value" use="required"/>
  743.         <xs:attribute name="fixed" type="xs:boolean" use="optional"
  744.                       default="false"/>
  745.       </xs:extension>
  746.     </xs:complexContent>
  747.   </xs:complexType>
  748.  
  749.  <xs:complexType name="noFixedFacet">
  750.   <xs:complexContent>
  751.    <xs:restriction base="xs:facet">
  752.     <xs:sequence>
  753.      <xs:element ref="xs:annotation" minOccurs="0"/>
  754.     </xs:sequence>
  755.     <xs:attribute name="fixed" type="xs:boolean" use="prohibited"/>
  756.    </xs:restriction>
  757.   </xs:complexContent>
  758.  </xs:complexType>
  759.  
  760.   <xs:element name="minExclusive" id="minExclusive" type="xs:facet">
  761.     <xs:annotation>
  762.       <xs:documentation
  763.         source="http://www.w3.org/TR/xmlschema-2/#element-minExclusive"/>
  764.     </xs:annotation>
  765.   </xs:element>
  766.   <xs:element name="minInclusive" id="minInclusive" type="xs:facet">
  767.     <xs:annotation>
  768.       <xs:documentation
  769.         source="http://www.w3.org/TR/xmlschema-2/#element-minInclusive"/>
  770.     </xs:annotation>
  771.   </xs:element>
  772.  
  773.   <xs:element name="maxExclusive" id="maxExclusive" type="xs:facet">
  774.     <xs:annotation>
  775.       <xs:documentation
  776.         source="http://www.w3.org/TR/xmlschema-2/#element-maxExclusive"/>
  777.     </xs:annotation>
  778.   </xs:element>
  779.   <xs:element name="maxInclusive" id="maxInclusive" type="xs:facet">
  780.     <xs:annotation>
  781.       <xs:documentation
  782.         source="http://www.w3.org/TR/xmlschema-2/#element-maxInclusive"/>
  783.     </xs:annotation>
  784.   </xs:element>
  785.  
  786.   <xs:complexType name="numFacet">
  787.     <xs:complexContent>
  788.       <xs:extension base="xs:annotated">
  789.        <xs:sequence>
  790.          <xs:element ref="xs:annotation" minOccurs="0"/>
  791.        </xs:sequence>
  792.        <xs:attribute name="value" type="xs:nonNegativeInteger" use="required"/>
  793.        <xs:attribute name="fixed" type="xs:boolean" use="optional"
  794.                       default="false"/>
  795.       </xs:extension>
  796.     </xs:complexContent>
  797.   </xs:complexType>
  798.  
  799.   <xs:element name="totalDigits" id="totalDigits">
  800.     <xs:annotation>
  801.       <xs:documentation
  802.         source="http://www.w3.org/TR/xmlschema-2/#element-totalDigits"/>
  803.     </xs:annotation>
  804.     <xs:complexType>
  805.       <xs:complexContent>
  806.         <xs:restriction base="xs:numFacet">
  807.           <xs:sequence>
  808.             <xs:element ref="xs:annotation" minOccurs="0"/>
  809.           </xs:sequence>
  810.           <xs:attribute name="value" type="xs:positiveInteger" use="required"/>
  811.         </xs:restriction>
  812.       </xs:complexContent>
  813.     </xs:complexType>
  814.   </xs:element>
  815.   <xs:element name="fractionDigits" id="fractionDigits" type="xs:numFacet">
  816.     <xs:annotation>
  817.       <xs:documentation
  818.         source="http://www.w3.org/TR/xmlschema-2/#element-fractionDigits"/>
  819.     </xs:annotation>
  820.   </xs:element>
  821.  
  822.   <xs:element name="length" id="length" type="xs:numFacet">
  823.     <xs:annotation>
  824.       <xs:documentation
  825.         source="http://www.w3.org/TR/xmlschema-2/#element-length"/>
  826.     </xs:annotation>
  827.   </xs:element>
  828.   <xs:element name="minLength" id="minLength" type="xs:numFacet">
  829.     <xs:annotation>
  830.       <xs:documentation
  831.         source="http://www.w3.org/TR/xmlschema-2/#element-minLength"/>
  832.     </xs:annotation>
  833.   </xs:element>
  834.   <xs:element name="maxLength" id="maxLength" type="xs:numFacet">
  835.     <xs:annotation>
  836.       <xs:documentation
  837.         source="http://www.w3.org/TR/xmlschema-2/#element-maxLength"/>
  838.     </xs:annotation>
  839.   </xs:element>
  840.   
  841.   <xs:element name="enumeration" id="enumeration" type="xs:noFixedFacet">
  842.     <xs:annotation>
  843.       <xs:documentation
  844.         source="http://www.w3.org/TR/xmlschema-2/#element-enumeration"/>
  845.     </xs:annotation>
  846.   </xs:element>
  847.  
  848.   <xs:element name="whiteSpace" id="whiteSpace">
  849.     <xs:annotation>
  850.       <xs:documentation
  851.         source="http://www.w3.org/TR/xmlschema-2/#element-whiteSpace"/>
  852.     </xs:annotation>
  853.     <xs:complexType>
  854.       <xs:complexContent>
  855.         <xs:extension base="xs:annotated">
  856.           <xs:sequence>
  857.             <xs:element ref="xs:annotation" minOccurs="0"/>
  858.           </xs:sequence>
  859.           <xs:attribute name="value" use="required">
  860.             <xs:simpleType>
  861.               <xs:restriction base="xs:NMTOKEN">
  862.                 <xs:enumeration value="preserve"/>
  863.                 <xs:enumeration value="replace"/>
  864.                 <xs:enumeration value="collapse"/>
  865.               </xs:restriction>
  866.             </xs:simpleType>
  867.           </xs:attribute>
  868.           <xs:attribute name="fixed" type="xs:boolean" use="optional"
  869.                         default="false"/>
  870.         </xs:extension>
  871.       </xs:complexContent>
  872.     </xs:complexType>
  873.   </xs:element>
  874.  
  875.   <xs:element name="pattern" id="pattern" type="xs:noFixedFacet">
  876.     <xs:annotation>
  877.       <xs:documentation
  878.         source="http://www.w3.org/TR/xmlschema-2/#element-pattern"/>
  879.     </xs:annotation>
  880.   </xs:element>
  881.  
  882.  <!-- Inclusion of datatypes.xsd ends here. tkamiya 2001-08-14 -->
  883.  
  884.  <xs:complexType name="openAttrs">
  885.    <xs:annotation>
  886.      <xs:documentation>
  887.        This type is extended by almost all schema types
  888.        to allow attributes from other namespaces to be
  889.        added to user schemas.
  890.      </xs:documentation>
  891.    </xs:annotation>
  892.    <xs:complexContent>
  893.      <xs:restriction base="xs:anyType">
  894.        <xs:anyAttribute namespace="##other" processContents="lax"/>
  895.      </xs:restriction>
  896.    </xs:complexContent>
  897.  </xs:complexType>
  898.  
  899.  <xs:complexType name="annotated">
  900.    <xs:annotation>
  901.      <xs:documentation>
  902.        This type is extended by all types which allow annotation
  903.        other than <schema> itself
  904.      </xs:documentation>
  905.    </xs:annotation>
  906.    <xs:complexContent>
  907.      <xs:extension base="xs:openAttrs">
  908.        <xs:sequence>
  909.      <xs:element ref="xs:annotation" minOccurs="0"/>
  910.        </xs:sequence>
  911.        <xs:attribute name="id" type="xs:ID"/>
  912.      </xs:extension>
  913.    </xs:complexContent>
  914.  </xs:complexType>
  915.  
  916.  <xs:group name="schemaTop">
  917.   <xs:annotation>
  918.    <xs:documentation>
  919.    This group is for the
  920.    elements which occur freely at the top level of schemas.
  921.    All of their types are based on the "annotated" type by extension.</xs:documentation>
  922.   </xs:annotation>
  923.   <xs:choice>
  924.    <xs:group ref="xs:redefinable"/>
  925.    <xs:element ref="xs:element"/>
  926.    <xs:element ref="xs:attribute"/>
  927.    <xs:element ref="xs:notation"/>
  928.   </xs:choice>
  929.  </xs:group>
  930.  
  931.  <xs:group name="redefinable">
  932.   <xs:annotation>
  933.    <xs:documentation>
  934.    This group is for the
  935.    elements which can self-redefine (see <redefine> below).</xs:documentation>
  936.   </xs:annotation>
  937.   <xs:choice>
  938.    <xs:element ref="xs:simpleType"/>
  939.    <xs:element ref="xs:complexType"/>
  940.    <xs:element ref="xs:group"/>
  941.    <xs:element ref="xs:attributeGroup"/>
  942.   </xs:choice>
  943.  </xs:group>
  944.  
  945.  <xs:element name="schema" id="schema">
  946.   <xs:annotation>
  947.     <xs:documentation source="http://www.w3.org/TR/xmlschema-1/#element-schema"/>
  948.   </xs:annotation>
  949.   <xs:complexType>
  950.    <xs:complexContent>
  951.     <xs:extension base="xs:openAttrs">
  952.      <xs:sequence>
  953.       <xs:choice minOccurs="0" maxOccurs="unbounded">
  954.        <xs:element ref="xs:include"/>
  955.        <xs:element ref="xs:import"/>
  956.        <xs:element ref="xs:redefine"/>
  957.        <xs:element ref="xs:annotation"/>
  958.       </xs:choice>
  959.       <xs:sequence minOccurs="0" maxOccurs="unbounded">
  960.        <xs:group ref="xs:schemaTop"/>
  961.        <xs:element ref="xs:annotation" minOccurs="0" maxOccurs="unbounded"/>
  962.       </xs:sequence>
  963.      </xs:sequence>
  964.      <xs:attribute name="targetNamespace" type="xs:anyURI"/>
  965.      <xs:attribute name="version" type="xs:token"/>
  966.      <xs:attribute name="finalDefault" type="co:derivationSet" use="optional" default=""/>
  967.      <xs:attribute name="blockDefault" type="co:blockSet" use="optional" default=""/>
  968.      <xs:attribute name="attributeFormDefault" type="co:formChoice" use="optional" default="unqualified"/>
  969.      <xs:attribute name="elementFormDefault" type="co:formChoice" use="optional" default="unqualified"/>
  970.      <xs:attribute name="id" type="xs:ID"/>
  971.      <xs:attribute ref="xml:lang"/>
  972.     </xs:extension>
  973.    </xs:complexContent>
  974.   </xs:complexType>
  975.  
  976.   <xs:key name="element">
  977.    <xs:selector xpath="xs:element"/>
  978.    <xs:field xpath="@name"/>
  979.   </xs:key>
  980.  
  981.   <xs:key name="attribute">
  982.    <xs:selector xpath="xs:attribute"/>
  983.    <xs:field xpath="@name"/>
  984.   </xs:key>
  985.  
  986.   <xs:key name="type">
  987.    <xs:selector xpath="xs:complexType|xs:simpleType"/>
  988.    <xs:field xpath="@name"/>
  989.   </xs:key>
  990.  
  991.   <xs:key name="group">
  992.    <xs:selector xpath="xs:group"/>
  993.    <xs:field xpath="@name"/>
  994.   </xs:key>
  995.  
  996.   <xs:key name="attributeGroup">
  997.    <xs:selector xpath="xs:attributeGroup"/>
  998.    <xs:field xpath="@name"/>
  999.   </xs:key>
  1000.  
  1001.   <xs:key name="notation">
  1002.    <xs:selector xpath="xs:notation"/>
  1003.    <xs:field xpath="@name"/>
  1004.   </xs:key>
  1005.  
  1006.   <xs:key name="identityConstraint">
  1007.    <xs:selector xpath=".//xs:key|.//xs:unique|.//xs:keyref"/>
  1008.    <xs:field xpath="@name"/>
  1009.   </xs:key>
  1010.  
  1011.  </xs:element>
  1012.  
  1013.  <xs:attributeGroup name="occurs">
  1014.   <xs:annotation><xs:documentation>
  1015.    for all particles</xs:documentation></xs:annotation>
  1016.   <xs:attribute name="minOccurs" type="xs:nonNegativeInteger" use="optional" default="1"/>
  1017.   <xs:attribute name="maxOccurs" type="co:allNNI" use="optional" default="1"/>
  1018.  </xs:attributeGroup>
  1019.  
  1020.  <xs:attributeGroup name="defRef">
  1021.   <xs:annotation><xs:documentation>
  1022.    for element, group and attributeGroup,
  1023.    which both define and reference</xs:documentation></xs:annotation>
  1024.   <xs:attribute name="name" type="xs:NCName"/>
  1025.   <xs:attribute name="ref" type="xs:QName"/>
  1026.  </xs:attributeGroup>
  1027.  
  1028.  <xs:group name="typeDefParticle">
  1029.   <xs:annotation>
  1030.     <xs:documentation>
  1031.    'complexType' uses this</xs:documentation></xs:annotation>
  1032.   <xs:choice>
  1033.    <xs:element name="group" type="xs:groupRef"/>
  1034.    <xs:element ref="xs:all"/>
  1035.    <xs:element ref="xs:choice"/>
  1036.    <xs:element ref="xs:sequence"/>
  1037.   </xs:choice>
  1038.  </xs:group>
  1039.  
  1040.  
  1041.  
  1042.  <xs:group name="nestedParticle">
  1043.   <xs:choice>
  1044.    <xs:element name="element" type="xs:localElement"/>
  1045.    <xs:element name="group" type="xs:groupRef"/>
  1046.    <xs:element ref="xs:choice"/>
  1047.    <xs:element ref="xs:sequence"/>
  1048.    <xs:element ref="xs:any"/>
  1049.   </xs:choice>
  1050.  </xs:group>
  1051.  
  1052.  <xs:group name="particle">
  1053.   <xs:choice>
  1054.    <xs:element name="element" type="xs:localElement"/>
  1055.    <xs:element name="group" type="xs:groupRef"/>
  1056.    <xs:element ref="xs:all"/>
  1057.    <xs:element ref="xs:choice"/>
  1058.    <xs:element ref="xs:sequence"/>
  1059.    <xs:element ref="xs:any"/>
  1060.   </xs:choice>
  1061.  </xs:group>
  1062.  
  1063.  <xs:complexType name="attribute">
  1064.   <xs:complexContent>
  1065.    <xs:extension base="xs:annotated">
  1066.     <xs:sequence>
  1067.      <xs:element name="simpleType" minOccurs="0" type="xs:localSimpleType"/>
  1068.     </xs:sequence>
  1069.     <xs:attributeGroup ref="xs:defRef"/>
  1070.     <xs:attribute name="type" type="xs:QName"/>
  1071.     <xs:attribute name="use" use="optional" default="optional">
  1072.      <xs:simpleType>
  1073.       <xs:restriction base="xs:NMTOKEN">
  1074.        <xs:enumeration value="prohibited"/>
  1075.        <xs:enumeration value="optional"/>
  1076.        <xs:enumeration value="required"/>
  1077.       </xs:restriction>
  1078.      </xs:simpleType>
  1079.     </xs:attribute>
  1080.     <xs:attribute name="default" type="xs:string"/>
  1081.     <xs:attribute name="fixed" type="xs:string"/>
  1082.     <xs:attribute name="form" type="co:formChoice"/>
  1083.    </xs:extension>
  1084.   </xs:complexContent>
  1085.  </xs:complexType>
  1086.  
  1087.  <xs:complexType name="topLevelAttribute">
  1088.    <xs:annotation>
  1089.      <xs:documentation>
  1090.       Derive "topLevelAttribute" from "annotated" instead of from "attribute"
  1091.       effectively making the definition a little flat so that xerces is able
  1092.       to recognize the grammar. - 2001-08-08 tkamiya
  1093.      </xs:documentation>
  1094.    </xs:annotation>
  1095.   <xs:complexContent>
  1096.    <xs:extension base="xs:annotated">
  1097.     <xs:sequence>
  1098.      <xs:element ref="xs:annotation" minOccurs="0"/>
  1099.      <xs:element name="simpleType" minOccurs="0" type="xs:localSimpleType"/>
  1100.     </xs:sequence>
  1101.     <xs:attribute name="name" use="required" type="xs:NCName"/>
  1102.     <xs:attribute name="type" type="xs:QName"/>
  1103.     <xs:attribute name="default" type="xs:string"/>
  1104.     <xs:attribute name="fixed" type="xs:string"/>
  1105.    </xs:extension>
  1106.   </xs:complexContent>
  1107.  </xs:complexType>
  1108.  
  1109.  <xs:group name="attrDecls">
  1110.   <xs:sequence>
  1111.    <xs:choice minOccurs="0" maxOccurs="unbounded">
  1112.     <xs:element name="attribute" type="xs:attribute"/>
  1113.     <xs:element name="attributeGroup" type="xs:attributeGroupRef"/>
  1114.    </xs:choice>
  1115.    <xs:element ref="xs:anyAttribute" minOccurs="0"/>
  1116.   </xs:sequence>
  1117.  </xs:group>
  1118.  
  1119.  <xs:element name="anyAttribute" type="xs:wildcard" id="anyAttribute">
  1120.   <xs:annotation>
  1121.    <xs:documentation source="http://www.w3.org/TR/xmlschema-1/#element-anyAttribute"/>
  1122.   </xs:annotation>
  1123.  </xs:element>
  1124.  
  1125.  <xs:group name="complexTypeModel">
  1126.   <xs:choice>
  1127.       <xs:element ref="xs:simpleContent"/>
  1128.       <xs:element ref="xs:complexContent"/>
  1129.       <xs:sequence>
  1130.        <xs:annotation>
  1131.         <xs:documentation>
  1132.    This branch is short for
  1133.    <complexContent>
  1134.    <restriction base="xs:anyType">
  1135.    ...
  1136.    </restriction>
  1137.    </complexContent></xs:documentation>
  1138.        </xs:annotation>
  1139.        <xs:group ref="xs:typeDefParticle" minOccurs="0"/>
  1140.        <xs:group ref="xs:attrDecls"/>
  1141.       </xs:sequence>
  1142.   </xs:choice>
  1143.  </xs:group>
  1144.  
  1145.  <xs:complexType name="complexType" abstract="true">
  1146.   <xs:complexContent>
  1147.    <xs:extension base="xs:annotated">
  1148.     <xs:group ref="xs:complexTypeModel"/>
  1149.     <xs:attribute name="name" type="xs:NCName">
  1150.      <xs:annotation>
  1151.       <xs:documentation>
  1152.       Will be restricted to required or forbidden</xs:documentation>
  1153.      </xs:annotation>
  1154.     </xs:attribute>
  1155.     <xs:attribute name="mixed" type="xs:boolean" use="optional" default="false">
  1156.      <xs:annotation>
  1157.       <xs:documentation>
  1158.       Not allowed if simpleContent child is chosen.
  1159.       May be overriden by setting on complexContent child.</xs:documentation>
  1160.     </xs:annotation>
  1161.     </xs:attribute>
  1162.     <xs:attribute name="abstract" type="xs:boolean" use="optional" default="false"/>
  1163.     <xs:attribute name="final" type="co:derivationSet"/>
  1164.     <xs:attribute name="block" type="co:derivationSet"/>
  1165.    </xs:extension>
  1166.   </xs:complexContent>
  1167.  </xs:complexType>
  1168.  
  1169.  <xs:complexType name="topLevelComplexType">
  1170.   <xs:complexContent>
  1171.    <xs:restriction base="xs:complexType">
  1172.     <xs:sequence>
  1173.      <xs:element ref="xs:annotation" minOccurs="0"/>
  1174.      <xs:group ref="xs:complexTypeModel"/>
  1175.     </xs:sequence>
  1176.     <xs:attribute name="name" type="xs:NCName" use="required"/>
  1177.    </xs:restriction>
  1178.   </xs:complexContent>
  1179.  </xs:complexType>
  1180.  
  1181.  <xs:complexType name="localComplexType">
  1182.   <xs:complexContent>
  1183.    <xs:restriction base="xs:complexType">
  1184.     <xs:sequence>
  1185.      <xs:element ref="xs:annotation" minOccurs="0"/>
  1186.      <xs:group ref="xs:complexTypeModel"/>
  1187.     </xs:sequence>
  1188.     <!--
  1189.       Explicitly state the types of the attributes prohibited here.
  1190.       2001-08-08 tkamiya
  1191.     -->
  1192.     <xs:attribute name="name" type="xs:NCName" use="prohibited"/>
  1193.     <xs:attribute name="abstract" type="xs:boolean" use="prohibited"/>
  1194.     <xs:attribute name="final" type="co:derivationSet" use="prohibited"/>
  1195.     <xs:attribute name="block" type="co:derivationSet" use="prohibited"/>
  1196.    </xs:restriction>
  1197.   </xs:complexContent>
  1198.  </xs:complexType>
  1199.  
  1200.  <xs:complexType name="restrictionType">
  1201.   <xs:complexContent>
  1202.    <xs:extension base="xs:annotated">
  1203.     <xs:sequence>
  1204.      <xs:choice>
  1205.       <xs:group ref="xs:typeDefParticle" minOccurs="0"/>
  1206.       <xs:group ref="xs:simpleRestrictionModel" minOccurs="0"/>
  1207.      </xs:choice>
  1208.      <xs:group ref="xs:attrDecls"/>
  1209.     </xs:sequence>
  1210.     <xs:attribute name="base" type="xs:QName" use="required"/>
  1211.    </xs:extension>
  1212.   </xs:complexContent>       
  1213.  </xs:complexType>
  1214.  
  1215.  <xs:complexType name="complexRestrictionType">
  1216.   <xs:complexContent>
  1217.    <xs:restriction base="xs:restrictionType">
  1218.     <xs:sequence>
  1219.      <xs:element ref="xs:annotation" minOccurs="0"/>
  1220.      <xs:group ref="xs:typeDefParticle" minOccurs="0"/>
  1221.      <xs:group ref="xs:attrDecls"/>
  1222.     </xs:sequence>
  1223.    </xs:restriction>
  1224.   </xs:complexContent>       
  1225.  </xs:complexType>
  1226.  
  1227.  <xs:complexType name="extensionType">
  1228.   <xs:complexContent>
  1229.    <xs:extension base="xs:annotated">
  1230.     <xs:sequence>
  1231.      <xs:group ref="xs:typeDefParticle" minOccurs="0"/>
  1232.      <xs:group ref="xs:attrDecls"/>
  1233.     </xs:sequence>
  1234.     <xs:attribute name="base" type="xs:QName" use="required"/>
  1235.    </xs:extension>
  1236.   </xs:complexContent>       
  1237.  </xs:complexType>
  1238.  
  1239.  <xs:element name="complexContent" id="complexContent">
  1240.   <xs:annotation>
  1241.    <xs:documentation source="http://www.w3.org/TR/xmlschema-1/#element-complexContent"/>
  1242.   </xs:annotation>
  1243.   <xs:complexType>
  1244.    <xs:complexContent>
  1245.     <xs:extension base="xs:annotated">
  1246.      <xs:choice>
  1247.       <xs:element name="restriction" type="xs:complexRestrictionType"/>
  1248.       <xs:element name="extension" type="xs:extensionType"/>
  1249.      </xs:choice>     
  1250.      <xs:attribute name="mixed" type="xs:boolean">
  1251.       <xs:annotation>
  1252.        <xs:documentation>
  1253.        Overrides any setting on complexType parent.</xs:documentation>
  1254.       </xs:annotation>
  1255.     </xs:attribute>
  1256.     </xs:extension>
  1257.    </xs:complexContent>
  1258.   </xs:complexType>
  1259.  </xs:element>
  1260.  
  1261.  <xs:complexType name="simpleRestrictionType">
  1262.   <xs:complexContent>
  1263.    <xs:restriction base="xs:restrictionType">
  1264.     <xs:sequence>
  1265.      <xs:element ref="xs:annotation" minOccurs="0"/>
  1266.      <xs:group ref="xs:simpleRestrictionModel" minOccurs="0"/>
  1267.      <xs:group ref="xs:attrDecls"/>
  1268.     </xs:sequence>
  1269.    </xs:restriction>
  1270.   </xs:complexContent>
  1271.  </xs:complexType>
  1272.  
  1273.  <xs:complexType name="simpleExtensionType">
  1274.   <xs:complexContent>
  1275.    <xs:restriction base="xs:extensionType">
  1276.     <xs:sequence>
  1277.      <xs:annotation>
  1278.       <xs:documentation>
  1279.       No typeDefParticle group reference</xs:documentation>
  1280.      </xs:annotation>
  1281.      <xs:element ref="xs:annotation" minOccurs="0"/>
  1282.      <xs:group ref="xs:attrDecls"/>
  1283.     </xs:sequence>
  1284.    </xs:restriction>
  1285.   </xs:complexContent>
  1286.  </xs:complexType>
  1287.  
  1288.  <xs:element name="simpleContent" id="simpleContent">
  1289.   <xs:annotation>
  1290.    <xs:documentation source="http://www.w3.org/TR/xmlschema-1/#element-simpleContent"/>
  1291.   </xs:annotation>
  1292.   <xs:complexType>
  1293.    <xs:complexContent>
  1294.     <xs:extension base="xs:annotated">
  1295.      <xs:choice>
  1296.       <xs:element name="restriction" type="xs:simpleRestrictionType"/>
  1297.       <xs:element name="extension" type="xs:simpleExtensionType"/>
  1298.      </xs:choice>
  1299.     </xs:extension>
  1300.    </xs:complexContent>
  1301.   </xs:complexType>
  1302.  </xs:element>
  1303.  
  1304.  <xs:element name="complexType" type="xs:topLevelComplexType" id="complexType">
  1305.   <xs:annotation>
  1306.    <xs:documentation source="http://www.w3.org/TR/xmlschema-1/#element-complexType"/>
  1307.   </xs:annotation>
  1308.  </xs:element>
  1309.  
  1310.  <xs:complexType name="element" abstract="true">
  1311.   <xs:annotation>
  1312.    <xs:documentation>
  1313.    The element element can be used either
  1314.    at the top level to define an element-type binding globally,
  1315.    or within a content model to either reference a globally-defined
  1316.    element or type or declare an element-type binding locally.
  1317.    The ref form is not allowed at the top level.</xs:documentation>
  1318.   </xs:annotation>
  1319.  
  1320.   <xs:complexContent>
  1321.    <xs:extension base="xs:annotated">
  1322.     <xs:sequence>
  1323.      <xs:choice minOccurs="0">
  1324.       <xs:element name="simpleType" type="xs:localSimpleType"/>
  1325.       <xs:element name="complexType" type="xs:localComplexType"/>
  1326.      </xs:choice>
  1327.      <xs:group ref="xs:identityConstraint" minOccurs="0" maxOccurs="unbounded"/>
  1328.     </xs:sequence>
  1329.     <xs:attributeGroup ref="xs:defRef"/>
  1330.     <xs:attribute name="type" type="xs:QName"/>
  1331.     <xs:attribute name="substitutionGroup" type="xs:QName"/>
  1332.     <xs:attributeGroup ref="xs:occurs"/>
  1333.     <xs:attribute name="default" type="xs:string"/>
  1334.     <xs:attribute name="fixed" type="xs:string"/>
  1335.     <xs:attribute name="nillable" type="xs:boolean" use="optional" default="false"/>
  1336.     <xs:attribute name="abstract" type="xs:boolean" use="optional" default="false"/>
  1337.     <xs:attribute name="final" type="co:derivationSet"/>
  1338.     <xs:attribute name="block" type="co:blockSet"/>
  1339.     <xs:attribute name="form" type="co:formChoice"/>
  1340.    </xs:extension>
  1341.   </xs:complexContent>
  1342.  </xs:complexType>
  1343.  
  1344.  <xs:complexType name="topLevelElement">
  1345.   <xs:annotation>
  1346.    <xs:documentation>
  1347.      Derive "topLevelElement" from "annotated" instead of from "element"
  1348.      effectively making the definition a little flat so that xerces is able
  1349.      to recognize the grammar. - 2001-08-08 tkamiya
  1350.    </xs:documentation>
  1351.   </xs:annotation>
  1352.   <xs:complexContent>
  1353.    <xs:extension base="xs:annotated">
  1354.     <xs:sequence>
  1355.      <xs:element ref="xs:annotation" minOccurs="0"/>
  1356.      <xs:choice minOccurs="0">
  1357.       <xs:element name="simpleType" type="xs:localSimpleType"/>
  1358.       <xs:element name="complexType" type="xs:localComplexType"/>
  1359.      </xs:choice>
  1360.      <xs:group ref="xs:identityConstraint" minOccurs="0" maxOccurs="unbounded"/>
  1361.     </xs:sequence>
  1362.     <xs:attribute name="name" use="required" type="xs:NCName"/>
  1363.     <xs:attribute name="type" type="xs:QName"/>
  1364.     <xs:attribute name="substitutionGroup" type="xs:QName"/>
  1365.     <xs:attribute name="default" type="xs:string"/>
  1366.     <xs:attribute name="fixed" type="xs:string"/>
  1367.     <xs:attribute name="nillable" type="xs:boolean" use="optional" default="false"/>
  1368.     <xs:attribute name="abstract" type="xs:boolean" use="optional" default="false"/>
  1369.     <xs:attribute name="final" type="co:derivationSet"/>
  1370.     <xs:attribute name="block" type="co:blockSet"/>
  1371.    </xs:extension>
  1372.   </xs:complexContent>
  1373.  </xs:complexType>
  1374.  
  1375.  <xs:complexType name="localElement">
  1376.   <xs:annotation>
  1377.    <xs:documentation>
  1378.      Derive "localElement" from "annotated" instead of from "element"
  1379.      effectively making the definition a little flat so that xerces is able
  1380.      to recognize the grammar. - 2001-08-08 tkamiya
  1381.    </xs:documentation>
  1382.   </xs:annotation>
  1383.   <xs:complexContent>
  1384.    <xs:extension base="xs:annotated">
  1385.     <xs:sequence>
  1386.      <xs:element ref="xs:annotation" minOccurs="0"/>
  1387.      <xs:choice minOccurs="0">
  1388.       <xs:element name="simpleType" type="xs:localSimpleType"/>
  1389.       <xs:element name="complexType" type="xs:localComplexType"/>
  1390.      </xs:choice>
  1391.      <xs:group ref="xs:identityConstraint" minOccurs="0" maxOccurs="unbounded"/>
  1392.     </xs:sequence>
  1393.     <xs:attributeGroup ref="xs:defRef"/>
  1394.     <xs:attribute name="type" type="xs:QName"/>
  1395.     <xs:attributeGroup ref="xs:occurs"/>
  1396.     <xs:attribute name="default" type="xs:string"/>
  1397.     <xs:attribute name="fixed" type="xs:string"/>
  1398.     <xs:attribute name="nillable" type="xs:boolean" use="optional" default="false"/>
  1399.     <xs:attribute name="block" type="co:blockSet"/>
  1400.     <xs:attribute name="form" type="co:formChoice"/>
  1401.    </xs:extension>
  1402.   </xs:complexContent>
  1403.  </xs:complexType>
  1404.  
  1405.  <xs:element name="element" type="xs:topLevelElement" id="element">
  1406.   <xs:annotation>
  1407.    <xs:documentation source="http://www.w3.org/TR/xmlschema-1/#element-element"/>
  1408.   </xs:annotation>
  1409.  </xs:element>
  1410.  
  1411.  <xs:complexType name="group" abstract="true">
  1412.   <xs:annotation>
  1413.    <xs:documentation>
  1414.    group type for explicit groups, named top-level groups and
  1415.    group references</xs:documentation>
  1416.   </xs:annotation>
  1417.   <xs:complexContent>
  1418.    <xs:extension base="xs:annotated">
  1419.     <xs:group ref="xs:particle" minOccurs="0" maxOccurs="unbounded"/>
  1420.     <xs:attributeGroup ref="xs:defRef"/>
  1421.     <xs:attributeGroup ref="xs:occurs"/>
  1422.    </xs:extension>
  1423.   </xs:complexContent>
  1424.  </xs:complexType>
  1425.  
  1426.  <xs:complexType name="realGroup">
  1427.   <xs:complexContent>
  1428.    <xs:restriction base="xs:group">
  1429.     <xs:sequence>
  1430.      <xs:element ref="xs:annotation" minOccurs="0"/>
  1431.      <xs:choice minOccurs="0" maxOccurs="1">
  1432.       <xs:element ref="xs:all"/>
  1433.       <xs:element ref="xs:choice"/>
  1434.       <xs:element ref="xs:sequence"/>
  1435.      </xs:choice>
  1436.     </xs:sequence>
  1437.    </xs:restriction>
  1438.   </xs:complexContent>
  1439.  </xs:complexType>
  1440.  
  1441.  <xs:complexType name="namedGroup">
  1442.   <xs:annotation>
  1443.    <xs:documentation>Should derive this from realGroup, but too complicated 
  1444.                       for now</xs:documentation>
  1445.    <xs:documentation>
  1446.      When prohibiting derived attributes, explicitly specify the their types
  1447.      for now to make xerces happy. 2001-08-08 tkamiya
  1448.    </xs:documentation>
  1449.   </xs:annotation>
  1450.   <xs:sequence>
  1451.    <xs:element ref="xs:annotation" minOccurs="0"/>
  1452.    <xs:choice minOccurs="1" maxOccurs="1">
  1453.     <xs:element name="all">
  1454.      <xs:complexType>
  1455.       <xs:complexContent>
  1456.        <xs:restriction base="xs:all">
  1457.         <xs:group ref="xs:allModel"/>
  1458.         <!--
  1459.           Explicitly state the types of the attributes prohibited here.
  1460.           2001-08-08 tkamiya
  1461.         -->
  1462.         <xs:attribute name="minOccurs" type="co:zeroOrOne" use="prohibited"/>
  1463.         <xs:attribute name="maxOccurs" type="co:allNNIJustOne" use="prohibited"/>
  1464.        </xs:restriction>
  1465.       </xs:complexContent>
  1466.      </xs:complexType>
  1467.     </xs:element>
  1468.     <xs:element name="choice" type="xs:simpleExplicitGroup"/>
  1469.     <xs:element name="sequence" type="xs:simpleExplicitGroup"/>
  1470.    </xs:choice>
  1471.   </xs:sequence>
  1472.   <xs:attribute name="name" use="required" type="xs:NCName"/>
  1473.  </xs:complexType>
  1474.  
  1475.  <xs:complexType name="groupRef">
  1476.   <xs:annotation>
  1477.    <xs:documentation>
  1478.      When prohibiting derived attributes, explicitly specify the their types
  1479.      for now to make xerces happy. 2001-08-06 tkamiya
  1480.    </xs:documentation>
  1481.    <xs:documentation>
  1482.      Derive "groupRef" from "annotated" instead of from "realGroup"
  1483.      effectively making the definition a little flat so that xerces is
  1484.      happily able to recognize the grammar. - 2001-08-07 tkamiya
  1485.    </xs:documentation>
  1486.   </xs:annotation>
  1487.   <xs:complexContent>
  1488.    <xs:extension base="xs:annotated">
  1489.     <xs:sequence>
  1490.      <xs:element ref="xs:annotation" minOccurs="0"/>
  1491.     </xs:sequence>
  1492.     <xs:attributeGroup ref="xs:occurs"/>
  1493.     <xs:attribute name="ref" use="required" type="xs:QName"/>
  1494.     <xs:attribute name="name" type="xs:NCName" use="prohibited"/>
  1495.    </xs:extension>
  1496.   </xs:complexContent>
  1497.  </xs:complexType>
  1498.  
  1499.  <xs:complexType name="explicitGroup">
  1500.   <xs:annotation>
  1501.    <xs:documentation>
  1502.    group type for the three kinds of group</xs:documentation>
  1503.   </xs:annotation>
  1504.   <xs:complexContent>
  1505.    <xs:restriction base="xs:group">
  1506.     <xs:sequence>
  1507.      <xs:element ref="xs:annotation" minOccurs="0"/>
  1508.      <xs:group ref="xs:nestedParticle" minOccurs="0" maxOccurs="unbounded"/>
  1509.     </xs:sequence>
  1510.     <xs:attribute name="name" type="xs:NCName" use="prohibited"/>
  1511.     <xs:attribute name="ref" type="xs:QName" use="prohibited"/>
  1512.    </xs:restriction>
  1513.   </xs:complexContent>
  1514.  </xs:complexType>
  1515.  
  1516.  <xs:complexType name="simpleExplicitGroup">
  1517.   <xs:annotation>
  1518.    <xs:documentation>
  1519.      When prohibiting derived attributes, explicitly specify the their types
  1520.      for now to make xerces happy. 2001-08-06 tkamiya
  1521.    </xs:documentation>
  1522.   </xs:annotation>
  1523.   <xs:complexContent>
  1524.    <xs:restriction base="xs:explicitGroup">
  1525.     <xs:sequence>
  1526.      <xs:element ref="xs:annotation" minOccurs="0"/>
  1527.      <xs:group ref="xs:nestedParticle" minOccurs="0" maxOccurs="unbounded"/>
  1528.     </xs:sequence>
  1529.     <xs:attribute name="minOccurs" type="xs:nonNegativeInteger" use="prohibited"/>
  1530.     <xs:attribute name="maxOccurs" type="co:allNNI" use="prohibited"/>
  1531.    </xs:restriction>
  1532.   </xs:complexContent>
  1533.  </xs:complexType>
  1534.  
  1535.  <xs:group name="allModel">
  1536.   <xs:sequence>
  1537.    <xs:element ref="xs:annotation" minOccurs="0"/>
  1538.    <xs:element name="element" minOccurs="0" maxOccurs="unbounded">
  1539.     <xs:complexType>
  1540.      <xs:annotation>
  1541.       <xs:documentation>restricted max/min</xs:documentation>
  1542.       <xs:documentation>
  1543.         Derive the type of "element" from "annotated" instead of from "localElement"
  1544.         effectively making the definition a little flat so that xerces is able
  1545.         to recognize the grammar. - 2001-08-08 tkamiya
  1546.       </xs:documentation>
  1547.      </xs:annotation>
  1548.      <xs:complexContent>
  1549.       <xs:extension base="xs:annotated">
  1550.        <xs:sequence>
  1551.         <xs:element ref="xs:annotation" minOccurs="0"/>
  1552.         <xs:choice minOccurs="0">
  1553.          <xs:element name="simpleType" type="xs:localSimpleType"/>
  1554.          <xs:element name="complexType" type="xs:localComplexType"/>
  1555.         </xs:choice>
  1556.         <xs:group ref="xs:identityConstraint" minOccurs="0" maxOccurs="unbounded"/>
  1557.        </xs:sequence>
  1558.        <xs:attributeGroup ref="xs:defRef"/>
  1559.        <xs:attribute name="type" type="xs:QName"/>
  1560.        <xs:attribute name="minOccurs" type="co:zeroOrOne" use="optional" default="1" />
  1561.        <xs:attribute name="maxOccurs" type="co:allNNIZeroOrOne" use="optional" default="1" />
  1562.        <xs:attribute name="default" type="xs:string"/>
  1563.        <xs:attribute name="fixed" type="xs:string"/>
  1564.        <xs:attribute name="nillable" type="xs:boolean" use="optional" default="false"/>
  1565.        <xs:attribute name="block" type="co:blockSet"/>
  1566.        <xs:attribute name="form" type="co:formChoice"/>
  1567.       </xs:extension>
  1568.      </xs:complexContent>
  1569.     </xs:complexType>    
  1570.    </xs:element>
  1571.   </xs:sequence>
  1572.  </xs:group>
  1573.  
  1574.   <xs:complexType name="all">
  1575.    <xs:annotation>
  1576.     <xs:documentation>
  1577.    Only elements allowed inside</xs:documentation>
  1578.     <xs:documentation>
  1579.       Derive "all" from "annotated" instead of from "explicitGroup"
  1580.       effectively making the definition a little flat so that xerces is able
  1581.       to recognize the grammar. - 2001-08-08 tkamiya
  1582.     </xs:documentation>
  1583.    </xs:annotation>
  1584.    <xs:complexContent>
  1585.     <xs:extension base="xs:annotated">
  1586.      <xs:sequence>
  1587.       <xs:element ref="xs:annotation" minOccurs="0"/>
  1588.       <xs:element name="element" minOccurs="0" maxOccurs="unbounded">
  1589.        <xs:complexType>
  1590.         <xs:annotation>
  1591.          <xs:documentation>restricted max/min</xs:documentation>
  1592.         </xs:annotation>
  1593.         <xs:complexContent>
  1594.          <xs:restriction base="xs:localElement">
  1595.           <xs:sequence>
  1596.            <xs:element ref="xs:annotation" minOccurs="0"/>
  1597.            <xs:choice minOccurs="0">
  1598.             <xs:element name="simpleType" type="xs:localSimpleType"/>
  1599.             <xs:element name="complexType" type="xs:localComplexType"/>
  1600.            </xs:choice>
  1601.            <xs:group ref="xs:identityConstraint" minOccurs="0" maxOccurs="unbounded"/>
  1602.           </xs:sequence>
  1603.           <xs:attribute name="minOccurs" type="co:zeroOrOne" use="optional" default="1" />
  1604.           <xs:attribute name="maxOccurs" type="co:allNNIZeroOrOne" use="optional" default="1" />
  1605.          </xs:restriction>
  1606.         </xs:complexContent>
  1607.        </xs:complexType>    
  1608.       </xs:element>
  1609.      </xs:sequence>
  1610.      <xs:attribute name="minOccurs" type="co:zeroOrOne" use="optional" default="1"/>
  1611.      <xs:attribute name="maxOccurs" type="co:allNNIJustOne" use="optional" default="1"/>
  1612.     </xs:extension>
  1613.    </xs:complexContent>
  1614.   </xs:complexType>
  1615.  
  1616.  <xs:element name="all" id="all" type="xs:all">
  1617.   <xs:annotation>
  1618.    <xs:documentation source="http://www.w3.org/TR/xmlschema-1/#element-all"/>
  1619.   </xs:annotation>
  1620.  </xs:element>
  1621.  
  1622.  <xs:element name="choice" type="xs:explicitGroup" id="choice">
  1623.   <xs:annotation>
  1624.    <xs:documentation source="http://www.w3.org/TR/xmlschema-1/#element-choice"/>
  1625.   </xs:annotation>
  1626.  </xs:element>
  1627.  
  1628.  <xs:element name="sequence" type="xs:explicitGroup" id="sequence">
  1629.   <xs:annotation>
  1630.    <xs:documentation source="http://www.w3.org/TR/xmlschema-1/#element-sequence"/>
  1631.   </xs:annotation>
  1632.  </xs:element>
  1633.  
  1634.  <xs:element name="group" type="xs:namedGroup" id="group">
  1635.   <xs:annotation>
  1636.    <xs:documentation source="http://www.w3.org/TR/xmlschema-1/#element-group"/>
  1637.   </xs:annotation>
  1638.  </xs:element>
  1639.  
  1640.  <xs:complexType name="wildcard">
  1641.   <xs:complexContent>
  1642.    <xs:extension base="xs:annotated">
  1643.     <xs:attribute name="namespace" type="co:namespaceList" use="optional" default="##any"/>
  1644.     <xs:attribute name="processContents" use="optional" default="strict">
  1645.      <xs:simpleType>
  1646.       <xs:restriction base="xs:NMTOKEN">
  1647.        <xs:enumeration value="skip"/>
  1648.        <xs:enumeration value="lax"/>
  1649.        <xs:enumeration value="strict"/>
  1650.       </xs:restriction>
  1651.      </xs:simpleType>
  1652.     </xs:attribute>
  1653.    </xs:extension>
  1654.   </xs:complexContent>
  1655.  </xs:complexType>
  1656.  
  1657.  <xs:element name="any" id="any">
  1658.   <xs:annotation>
  1659.    <xs:documentation source="http://www.w3.org/TR/xmlschema-1/#element-any"/>
  1660.   </xs:annotation>
  1661.   <xs:complexType>
  1662.    <xs:complexContent>
  1663.     <xs:extension base="xs:wildcard">
  1664.      <xs:attributeGroup ref="xs:occurs"/>
  1665.     </xs:extension>
  1666.    </xs:complexContent>
  1667.   </xs:complexType>
  1668.  </xs:element>
  1669.  
  1670.   <xs:annotation>
  1671.    <xs:documentation>
  1672.    simple type for the value of the 'namespace' attr of
  1673.    'any' and 'anyAttribute'</xs:documentation>
  1674.   </xs:annotation>
  1675.   <xs:annotation>
  1676.    <xs:documentation>
  1677.    Value is
  1678.               ##any      - - any non-conflicting WFXML/attribute at all
  1679.  
  1680.               ##other    - - any non-conflicting WFXML/attribute from
  1681.                               namespace other than targetNS
  1682.  
  1683.               ##local    - - any unqualified non-conflicting WFXML/attribute 
  1684.  
  1685.               one or     - - any non-conflicting WFXML/attribute from
  1686.               more URI        the listed namespaces
  1687.               references
  1688.               (space separated)
  1689.  
  1690.     ##targetNamespace or ##local may appear in the above list, to
  1691.         refer to the targetNamespace of the enclosing
  1692.         schema or an absent targetNamespace respectively</xs:documentation>
  1693.   </xs:annotation>
  1694.  
  1695.  <xs:element name="attribute" type="xs:topLevelAttribute" id="attribute">
  1696.   <xs:annotation>
  1697.    <xs:documentation source="http://www.w3.org/TR/xmlschema-1/#element-attribute"/>
  1698.   </xs:annotation>
  1699.  </xs:element>
  1700.  
  1701.  <xs:complexType name="attributeGroup" abstract="true">
  1702.   <xs:complexContent>
  1703.    <xs:extension base="xs:annotated">
  1704.     <xs:group ref="xs:attrDecls"/>
  1705.     <xs:attributeGroup ref="xs:defRef"/>
  1706.    </xs:extension>
  1707.   </xs:complexContent>
  1708.  </xs:complexType>
  1709.  
  1710.  <xs:complexType name="namedAttributeGroup">
  1711.   <xs:complexContent>
  1712.    <xs:restriction base="xs:attributeGroup">
  1713.     <xs:sequence>
  1714.      <xs:element ref="xs:annotation" minOccurs="0"/>
  1715.      <xs:group ref="xs:attrDecls"/>
  1716.     </xs:sequence>
  1717.     <xs:attribute name="name" use="required" type="xs:NCName"/>
  1718.     <xs:attribute name="ref" type="xs:QName" use="prohibited"/>
  1719.    </xs:restriction>
  1720.   </xs:complexContent>
  1721.  </xs:complexType>
  1722.  
  1723.  <!-- attributeGroupRef has been expanded. tkamiya 2001-08-07 -->
  1724.  <xs:complexType name="attributeGroupRef">
  1725.   <xs:complexContent>
  1726.    <xs:extension base="xs:annotated">
  1727.     <xs:sequence>
  1728.      <xs:element ref="xs:annotation" minOccurs="0"/>
  1729.     </xs:sequence>
  1730.     <xs:attribute name="ref" use="required" type="xs:QName"/>
  1731.    </xs:extension>
  1732.   </xs:complexContent>
  1733.  </xs:complexType>
  1734.  
  1735.  <xs:element name="attributeGroup" type="xs:namedAttributeGroup" id="attributeGroup">
  1736.   <xs:annotation>
  1737.    <xs:documentation source="http://www.w3.org/TR/xmlschema-1/#element-attributeGroup"/>
  1738.   </xs:annotation>
  1739.  </xs:element>
  1740.  
  1741.  <xs:element name="include" id="include">
  1742.   <xs:annotation>
  1743.    <xs:documentation source="http://www.w3.org/TR/xmlschema-1/#element-include"/>
  1744.   </xs:annotation>
  1745.   <xs:complexType>
  1746.    <xs:complexContent>
  1747.     <xs:extension base="xs:annotated">
  1748.      <xs:attribute name="schemaLocation" type="xs:anyURI" use="required"/>
  1749.     </xs:extension>
  1750.    </xs:complexContent>
  1751.   </xs:complexType>
  1752.  </xs:element>
  1753.  
  1754.  <xs:element name="redefine" id="redefine">
  1755.   <xs:annotation>
  1756.    <xs:documentation source="http://www.w3.org/TR/xmlschema-1/#element-redefine"/>
  1757.   </xs:annotation>
  1758.   <xs:complexType>
  1759.    <xs:complexContent>
  1760.     <xs:extension base="xs:openAttrs">
  1761.      <xs:choice minOccurs="0" maxOccurs="unbounded">
  1762.       <xs:element ref="xs:annotation"/>
  1763.       <xs:group ref="xs:redefinable"/>
  1764.      </xs:choice>
  1765.      <xs:attribute name="schemaLocation" type="xs:anyURI" use="required"/>
  1766.      <xs:attribute name="id" type="xs:ID"/>
  1767.     </xs:extension>
  1768.    </xs:complexContent>
  1769.   </xs:complexType>
  1770.  </xs:element>
  1771.  
  1772.  <xs:element name="import" id="import">
  1773.   <xs:annotation>
  1774.    <xs:documentation source="http://www.w3.org/TR/xmlschema-1/#element-import"/>
  1775.   </xs:annotation>
  1776.   <xs:complexType>
  1777.    <xs:complexContent>
  1778.     <xs:extension base="xs:annotated">
  1779.      <xs:attribute name="namespace" type="xs:anyURI"/>
  1780.      <xs:attribute name="schemaLocation" type="xs:anyURI"/>
  1781.     </xs:extension>
  1782.    </xs:complexContent>
  1783.   </xs:complexType>
  1784.  </xs:element>
  1785.  
  1786.  <xs:element name="selector" id="selector">
  1787.   <xs:annotation>
  1788.    <xs:documentation source="http://www.w3.org/TR/xmlschema-1/#element-selector"/>
  1789.   </xs:annotation>
  1790.   <xs:complexType>
  1791.   <xs:complexContent>
  1792.    <xs:extension base="xs:annotated">
  1793.      <xs:attribute name="xpath" use="required">
  1794.       <xs:simpleType>
  1795.        <xs:annotation>
  1796.         <xs:documentation>A subset of XPath expressions for use
  1797. in selectors</xs:documentation>
  1798.         <xs:documentation>A utility type, not for public
  1799. use</xs:documentation>
  1800.        </xs:annotation>
  1801.        <xs:restriction base="xs:token">
  1802.         <xs:annotation>
  1803.          <xs:documentation>The following pattern is intended to allow XPath
  1804.                            expressions per the following EBNF:
  1805.       Selector    ::=    Path ( '|' Path )*  
  1806.       Path    ::=    ('.//')? Step ( '/' Step )*  
  1807.       Step    ::=    '.' | NameTest  
  1808.       NameTest    ::=    QName | '*' | NCName ':' '*'  
  1809.                            child:: is also allowed
  1810.          </xs:documentation>
  1811.         </xs:annotation>
  1812.         <xs:pattern value="(\.//)?(((child::)?((\i\c*:)?(\i\c*|\*)))|\.)(/(((child::)?((\i\c*:)?(\i\c*|\*)))|\.))*(\|(\.//)?(((child::)?((\i\c*:)?(\i\c*|\*)))|\.)(/(((child::)?((\i\c*:)?(\i\c*|\*)))|\.))*)*">
  1813.         </xs:pattern>
  1814.        </xs:restriction>
  1815.       </xs:simpleType>
  1816.      </xs:attribute>
  1817.    </xs:extension>
  1818.   </xs:complexContent>
  1819.  </xs:complexType>
  1820.  </xs:element>
  1821.  
  1822.  <xs:element name="field" id="field">
  1823.   <xs:annotation>
  1824.    <xs:documentation source="http://www.w3.org/TR/xmlschema-1/#element-field"/>
  1825.   </xs:annotation>
  1826.   <xs:complexType>
  1827.   <xs:complexContent>
  1828.    <xs:extension base="xs:annotated">
  1829.      <xs:attribute name="xpath" use="required">
  1830.       <xs:simpleType>
  1831.        <xs:annotation>
  1832.         <xs:documentation>A subset of XPath expressions for use
  1833. in fields</xs:documentation>
  1834.         <xs:documentation>A utility type, not for public
  1835. use</xs:documentation>
  1836.        </xs:annotation>
  1837.        <xs:restriction base="xs:token">
  1838.         <xs:annotation>
  1839.          <xs:documentation>The following pattern is intended to allow XPath
  1840.                            expressions per the same EBNF as for selector,
  1841.                            with the following change:
  1842.           Path    ::=    ('.//')? ( Step '/' )* ( Step | '@' NameTest ) 
  1843.          </xs:documentation>
  1844.         </xs:annotation>
  1845.         <xs:pattern value="(\.//)?((((child::)?((\i\c*:)?(\i\c*|\*)))|\.)/)*((((child::)?((\i\c*:)?(\i\c*|\*)))|\.)|((attribute::|@)((\i\c*:)?(\i\c*|\*))))(\|(\.//)?((((child::)?((\i\c*:)?(\i\c*|\*)))|\.)/)*((((child::)?((\i\c*:)?(\i\c*|\*)))|\.)|((attribute::|@)((\i\c*:)?(\i\c*|\*)))))*">
  1846.         </xs:pattern>
  1847.        </xs:restriction>
  1848.       </xs:simpleType>
  1849.      </xs:attribute>
  1850.    </xs:extension>
  1851.   </xs:complexContent>
  1852.  </xs:complexType>
  1853.  </xs:element>
  1854.  
  1855.  <xs:complexType name="keybase">
  1856.   <xs:complexContent>
  1857.    <xs:extension base="xs:annotated">
  1858.     <xs:sequence>
  1859.      <xs:element ref="xs:selector"/>
  1860.      <xs:element ref="xs:field" minOccurs="1" maxOccurs="unbounded"/>
  1861.     </xs:sequence>
  1862.     <xs:attribute name="name" type="xs:NCName" use="required"/>
  1863.    </xs:extension>
  1864.   </xs:complexContent>
  1865.  </xs:complexType>
  1866.  
  1867.  <xs:group name="identityConstraint">
  1868.   <xs:annotation>
  1869.    <xs:documentation>The three kinds of identity constraints, all with
  1870.                      type of or derived from 'keybase'.
  1871.    </xs:documentation>
  1872.   </xs:annotation>
  1873.   <xs:choice>
  1874.    <xs:element ref="xs:unique"/>
  1875.    <xs:element ref="xs:key"/>
  1876.    <xs:element ref="xs:keyref"/>
  1877.   </xs:choice>
  1878.  </xs:group>
  1879.  
  1880.  <xs:element name="unique" type="xs:keybase" id="unique">
  1881.   <xs:annotation>
  1882.    <xs:documentation source="http://www.w3.org/TR/xmlschema-1/#element-unique"/>
  1883.   </xs:annotation>
  1884.  </xs:element>
  1885.  <xs:element name="key" type="xs:keybase" id="key">
  1886.   <xs:annotation>
  1887.    <xs:documentation source="http://www.w3.org/TR/xmlschema-1/#element-key"/>
  1888.   </xs:annotation>
  1889.  </xs:element>
  1890.  <xs:element name="keyref" id="keyref">
  1891.   <xs:annotation>
  1892.    <xs:documentation source="http://www.w3.org/TR/xmlschema-1/#element-keyref"/>
  1893.   </xs:annotation>
  1894.   <xs:complexType>
  1895.    <xs:complexContent>
  1896.     <xs:extension base="xs:keybase">
  1897.      <xs:attribute name="refer" type="xs:QName" use="required"/>
  1898.     </xs:extension>
  1899.    </xs:complexContent>
  1900.   </xs:complexType>
  1901.  </xs:element>
  1902.  
  1903.  <xs:element name="notation" id="notation">
  1904.   <xs:annotation>
  1905.    <xs:documentation source="http://www.w3.org/TR/xmlschema-1/#element-notation"/>
  1906.   </xs:annotation>
  1907.   <xs:complexType>
  1908.    <xs:complexContent>
  1909.     <xs:extension base="xs:annotated">
  1910.      <xs:attribute name="name" type="xs:NCName" use="required"/>
  1911.      <xs:attribute name="public" type="co:public" use="required"/>
  1912.      <xs:attribute name="system" type="xs:anyURI"/>
  1913.     </xs:extension>
  1914.    </xs:complexContent>
  1915.   </xs:complexType>
  1916.  </xs:element>
  1917.  
  1918.  <xs:element name="appinfo" id="appinfo">
  1919.    <xs:annotation>
  1920.      <xs:documentation source="http://www.w3.org/TR/xmlschema-1/#element-appinfo"/>
  1921.    </xs:annotation>
  1922.    <xs:complexType mixed="true">
  1923.      <xs:sequence minOccurs="0" maxOccurs="unbounded">
  1924.        <xs:any processContents="lax"/>
  1925.      </xs:sequence>
  1926.      <xs:attribute name="source" type="xs:anyURI"/>
  1927.    </xs:complexType>
  1928.  </xs:element>
  1929.  
  1930.  <xs:element name="documentation" id="documentation">
  1931.    <xs:annotation>
  1932.      <xs:documentation source="http://www.w3.org/TR/xmlschema-1/#element-documentation"/>
  1933.    </xs:annotation>
  1934.    <xs:complexType mixed="true">
  1935.      <xs:sequence minOccurs="0" maxOccurs="unbounded">
  1936.        <xs:any processContents="lax"/>
  1937.      </xs:sequence>
  1938.      <xs:attribute name="source" type="xs:anyURI"/>
  1939.    <xs:attribute ref="xml:lang"/>
  1940.    </xs:complexType>
  1941.  </xs:element>
  1942.  
  1943.  <xs:element name="annotation" id="annotation">
  1944.    <xs:annotation>
  1945.      <xs:documentation source="http://www.w3.org/TR/xmlschema-1/#element-annotation"/>
  1946.    </xs:annotation>
  1947.    <xs:complexType>
  1948.     <xs:complexContent>
  1949.      <xs:extension base="xs:openAttrs">
  1950.       <xs:choice minOccurs="0" maxOccurs="unbounded">
  1951.        <xs:element ref="xs:appinfo"/>
  1952.        <xs:element ref="xs:documentation"/>
  1953.       </xs:choice>
  1954.       <xs:attribute name="id" type="xs:ID"/>
  1955.      </xs:extension>
  1956.     </xs:complexContent>
  1957.    </xs:complexType>
  1958.  </xs:element>
  1959.  
  1960.  <xs:annotation>
  1961.   <xs:documentation>
  1962.    notations for use within XML Schema schemas</xs:documentation>
  1963.  </xs:annotation>
  1964.  
  1965.  <xs:notation name="XMLSchemaStructures" public="structures" system="http://www.w3.org/2000/08/XMLSchema.xsd"/>
  1966.  <xs:notation name="XML" public="REC-xml-19980210" system="http://www.w3.org/TR/1998/REC-xml-19980210"/>
  1967.  
  1968.  <xs:complexType name="anyType" mixed="true">
  1969.   <xs:annotation>
  1970.    <xs:documentation>
  1971.    Not the real urType, but as close an approximation as we can
  1972.    get in the XML representation</xs:documentation>
  1973.   </xs:annotation>
  1974.   <xs:sequence>
  1975.    <xs:any minOccurs="0" maxOccurs="unbounded"/>
  1976.   </xs:sequence>
  1977.   <xs:anyAttribute/>
  1978.  </xs:complexType>
  1979. </xs:schema>
  1980.  
  1981.